home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 49 / Amiga Format CD49 (2000-01-17)(Future Publishing)(GB)(Track 1 of 3)[!][issue 2000-02].iso / -serious- / comms / other / novia / src / include / novia_message.h < prev    next >
C/C++ Source or Header  |  1999-12-06  |  5KB  |  199 lines

  1. #ifndef NOVIA_MESSAGE_H
  2. #define NOVIA_MESSAGE_H
  3. #define NOVIA_MESSAGE_H_VERSION "$VER: 0.08 (07.09.1998)"
  4. // (c) Copyright 1996-1999 by Thorsten Gehler
  5. // All rights reserved. Read license.readme for copyright informations.
  6. // VERSION: 0.07 (18.07.1998)
  7. // VERSION: 0.08 (07.09.1998)
  8. // VERSION: 0.09 (26.09.1998)
  9.  
  10. #ifndef NOVIA_DATE_H
  11. #include <novia/novia_date.h>
  12. #endif
  13.  
  14.  
  15. struct message
  16. {
  17.     struct     Message msg;
  18.     struct    message *ln_Succ;
  19.     struct    message *ln_Pred;
  20.     ULONG            IDNumber;
  21.     ULONG            IPNumber;        // serial number of message
  22.     ULONG            PortID;
  23.     ULONG            msg_type;
  24.     ULONG            cmd_type;        // if sending a command
  25.     APTR            data;
  26.     ULONG            data_len;        // length of data
  27. };
  28.  
  29. struct EventMessage
  30. {
  31.     struct     Message msg;
  32.     ULONG            msg_type;
  33.     APTR            data;
  34. };
  35.  
  36. #define EVENTMSGTYPE_QUIT        1000
  37.  
  38. struct MsgList
  39. {
  40.     struct message *first;
  41.     struct message *last;
  42.     ULONG  entrys;
  43. };
  44.  
  45. #define OLM_TYPE_NORMAL            1
  46. #define OLM_TYPE_BROADCAST        2
  47. #define OLM_TYPE_MAGAOLM        3
  48. #define OLM_TYPE_FILEOLM        4
  49.  
  50. #define OLM_TYPE_CHATREQUEST    10
  51. #define OLM_TYPE_CHATACCEPT        11
  52. #define OLM_TYPE_CHATREJECT        12
  53. #define OLM_TYPE_CHATFAILAT        13
  54. #define OLM_TYPE_CHATBREAK        14
  55.  
  56. #define OLM_TYPE_SYSTEMMESSAGE    100
  57.  
  58. struct OnLineMessage
  59. {
  60.     ULONG        ToUser;            // 4
  61.     ULONG        FromUser;        // 8
  62.     struct        Date WriteDate;    // 20
  63.     ULONG        OLM_type;        /* 24 normal OLM, MEGA-OLM, FILE-OLM etc. */
  64.     ULONG        data_len;        // 28
  65.     char        data[1];        // 32
  66. };
  67.  
  68. struct ChatMessage
  69. {
  70.     ULONG        ToUser;
  71.     ULONG        FromUser;
  72.     ULONG        data_len;
  73.     char        data[1];
  74. };
  75.  
  76.  
  77. #define RCMSG_LOGIN                        1
  78. #define RCMSG_LOGIN_REPLY_OK            3
  79. #define RCMSG_LOGIN_REPLY_FAILAT        5
  80. #define RCMSG_TEXT                        10
  81. #define RCMSG_DUMP                        20
  82. #define RCMSG_LOGOFF                    21
  83. #define RCMSG_LOGOFF_OK                    22
  84. #define RCMSG_CHANGEROOM                30
  85. #define RCMSG_CHANGEROOM_OK                31
  86. #define RCMSG_CHANGEROOM_FAILAT            32
  87.  
  88. struct NRCServer
  89. {
  90.     ULONG    IDNumber;
  91.     ULONG    IPNumber;
  92.     struct     Task *nrctask;
  93.     struct    List *roomlist;
  94.     ULONG    rooms;
  95.     ULONG    users;
  96.     ULONG    localusers;
  97.     struct    MsgPort *controlport;
  98.     struct    MsgPort    *nrcport;
  99.     char    ServerOpen;
  100.     char    ServerClose;
  101. };
  102.  
  103. struct RCMessage
  104. {
  105.     struct RoomUser *user;
  106.     ULONG        msgtype;
  107.     ULONG        ToUser;            // RoomUserID    if RCMSG_LOGIN_REPLY ToUser   = your UserID
  108.     ULONG        FromUser;        // RoomUserID     if RCMSG_LOGIN_REPLY FromUser = users in first Room
  109.     UWORD        ToRoom;            //                if RCMSG_LOGIN_REPLY ToRoom   = actual Room
  110.     UWORD        FromRoom;
  111.     ULONG        Level;            // 
  112.     char        flag_internal;
  113.     char        flag_private;    // one user message
  114.     char        flag_broadcast;    // to all rooms
  115.     char        flag_sysmsg;    // systemmessage.. User ??? has login... etc.
  116.     char        flag_anonymous; // anonymous message
  117.     char        flag_realname;    // realname
  118.     char        flag_ircchannel;// from InternetRelayChat
  119.     char        flag_res1;
  120.     char        FromName[40];
  121.     char        ToName[40];
  122.     char        FromRealName[40];
  123.     char        ToRealName[40];
  124.  
  125.     APTR        aptrdata;        // for control-messages etc.
  126.     ULONG        data_len;
  127.     char        data[1];
  128. };
  129.  
  130. struct RCMessage2
  131. {
  132.     struct Message msg;
  133.     struct RCMessage rcmsg;
  134. };
  135.  
  136.  
  137. struct RoomMember
  138. {
  139.     struct RoomMember *ln_Succ;
  140.     struct RoomMember *ln_Pred;
  141.     ULONG  UserID;
  142. };
  143.  
  144. struct Member
  145. {
  146.     struct Member *ln_Succ;
  147.     struct Member *ln_Pred;
  148.     ULONG  UserID;
  149. };
  150.  
  151. struct Room
  152. {
  153.     struct    Room *ln_Succ;        // 4
  154.     struct    Room *ln_Pred;        // 8
  155.     UWORD    RoomID;                // 10
  156.     UWORD    RoomIP;                // 12 serial ip number
  157.     struct    MinList userlist;    // 24 acutal Users in this Room
  158.     struct  MinList Memberlist;    // 36   
  159.     struct  MinList Grouplist;    // 48 Groups to entry in this Room
  160.     ULONG    users;                // 52 localusers & irc users
  161.     ULONG    localusers;            // 56
  162.     ULONG    members;            // 60 reserved
  163.     ULONG    maxusers;            // 64 max local & irc users. Set to 0 for no max
  164.     ULONG   maxlocalusers;        // 68
  165.     ULONG    IRC_IP;                // 72 Internet Relay Chat IP-Address        Changed in V0.09 IRCIP -> IRC_IP
  166.     ULONG    IRC_Port;            // 76 IRC-Port Number                        Changed in V0.09 IRCChannel -> IRC_Port
  167.     char    RoomName[40];        // 116
  168.     char    password[20];        // 136 EntryPassword
  169.     char    entrypt[20];        // 156 Entrypt PGP-Private Key!!!
  170.     char    flag_internal;        // 157 NRC-Chat, no IRC Chat
  171.     char    flag_membersonly;    // 158 Private Chat, User must be added in Memberslist
  172.     char    flag_usepw;            // 159 Use Password
  173.     char    flag_broadcast;        // 160
  174.     char    flag_sysmsg;        // 161
  175.     char    flag_anonymous;        // 162
  176.     char    flag_realnames;        // 163
  177.     char    flag_ircchannel;    // 164
  178.     char    flag_openircatstart;// 165
  179.     char    flag_reserved;        // 165
  180.     char    res34[34];            // 199
  181. };
  182.  
  183. struct RoomUser
  184. {
  185.     struct    RoomUser *ln_Succ;
  186.     struct    RoomUser *ln_Pred;
  187.     struct    MsgPort     *userport;
  188.     struct    Room     *room;
  189.     struct    PortData *cport;
  190.     ULONG    Level;                    // Level;
  191.     char    UserName[40];
  192.     char    RealName[40];
  193.     char    flag_anonyous;
  194.     char    flag_broadcast;
  195.     char     flag_quit;
  196. };
  197.  
  198. #endif
  199.